package com.pig4cloud.pigx.contract.api.v1.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pig4cloud.pigx.common.core.util.R;
import com.pig4cloud.pigx.contract.entity.ContractSymbol;
import com.pig4cloud.pigx.contract.open.api.vo.OpenApiSymbol24hTickerVOV1;
import com.pig4cloud.pigx.contract.open.api.vo.OpenApiSymbolDetailsVOV1;
import com.pig4cloud.pigx.contract.open.api.vo.OpenApiSymbolHandlingRateVOV1;

import java.math.BigDecimal;
import java.util.List;

/**
 */
public interface SymbolServiceV1 extends IService<ContractSymbol> {

	/**
	 * 获取币对详情信息
	 * @param symbolName 币对名称
	 * @return OpenApiSymbolDetailsVO
	 */
	R<OpenApiSymbolDetailsVOV1> getSymbol(String symbolName);

	/**
	 * 获取币对最新价
	 * @param symbolName 币对名称
	 * @return 最新价
	 */
	R<BigDecimal> getSymbolLastPrice(String symbolName);

	/**
	 * 获取币对标记价
	 * @param symbolName 币对名称
	 * @return 标记价
	 */
	R<BigDecimal> getSymbolIndexPrice(String symbolName);

	/**
	 * 获取币对指数价
	 * @param symbolName 币对名称
	 * @return 指数价
	 */
	R<BigDecimal> getSymbolMarkPrice(String symbolName);

	/**
	 * 获取币对24行情
	 * @param symbolName 币对名称
	 * @return 币对24行情
	 */
	R<OpenApiSymbol24hTickerVOV1> getSymbol24hTicker(String symbolName);

	/**
	 * 获取币对手续费率
	 * @param symbolName 币对名称
	 * @return 手续费
	 */
	R<OpenApiSymbolHandlingRateVOV1> getSymbolHandlingRate(String symbolName);

	/**
	 * 获取币对深度图
	 * @param symbolName 币对名称
	 * @param level 深度级别
	 * @return r
	 */
	R<JSONObject> getSymbolDepth(String symbolName, String level);


	/**
	 * 获取币对深度等级
	 * @param symbolName 币对名称
	 * @return r
	 */
	R<List<String>> getLevelFromRedis(String symbolName);

}
